今天繼續跟大家介紹kernel method,kernel另一個很重要的應用就是高斯過程(Gaussian Process),在看Gaussian process之前我們先看一個例子。
回憶之前提過的回歸問題,我們的預測值定義是
我們又可以更進一步的把 w 的prior表成
我們的預測值向量就可以寫成下面的樣子
不過因為我們考慮的先驗的機率,所以我們可以去看我們預測值的期望值與變異數會是多少,這邊我們假設phi為定性,也就不含機率成份,所以不影響計算期望值那些,也就是說可以提出來。所以期望值可以得到
接著計算變異數
而這個結果我們就可以把他寫成kernel矩陣K了,其中K的(n,m)是
以上就是一個Gaussian process具體例子!其中的關鍵點在於,預測值的聯合分佈,也就是向量y上每一個y的分佈,完全是由平均與變異數決定,而變異數矩陣完全由kernel來決定。所以我們又可以看到,我們一樣可以透過改變kernel的定義,去得到不同的預測,唯一的限制只有這個kernel需要合法,也就是這邊的kernel矩陣要是半正定。一個常用的kernel是這個
接下來我們把gaussian process用在我們已經很熟的回歸問題上,一樣假設noise是高斯分佈,寫下分佈
而我們的預測值依據剛剛的想法就是(這邊應該很清楚的可以發現,高斯過程的沒有 w 這個東西了)
再考慮所有的預測可能去計算預測分佈
其中
那個長得很奇怪的唸作delta,他的意思是當 n == m 的時候是一,剩下都是零
最後我們用這些推導來預測新的資料,寫下式子就是
再進一步可以寫成
粗體的t就是我的訓練資料們,左邊的t就是要預測的值,那這個機率他也會是一個高斯分佈
mean :
variance :
這邊的k是要預測的資料的x與訓練資料們做kernel形成的向量。
小c則是要預測的資料的x與自己的kernel,大C就是提到的定義所組成的矩陣。
利用這樣的推導我們可以得到這樣的fitting結果,紅線就是平均,粉紅則是預測範圍。
其中使用的kernel是
四個數字代表四個theta